#!/bin/bash  
  
# 定义变量  
AUTHOR="XinTianyu"  
SOFTWARE_VERSION="1.0.0"  
DIRECTORY_TO_PROCESS="./"  # 要处理的目录，默认为当前目录  
HEADER_TEMPLATE="""  
/*  
 * 文件名: %s  
 * 作者: %s  
 * 更新时间: %s  
 * 软件版本号: %s  
 */  
"""  
  
# 检查命令行参数  
if [ "$#" -ne 1 ]; then  
    echo "用法: $0 <文件扩展名>"  
    exit 1  
fi  
  
FILE_EXTENSION="$1"  
  
# 遍历指定目录下的所有文件  
for file in "$DIRECTORY_TO_PROCESS"*."$FILE_EXTENSION"; do  
    if [ -f "$file" ]; then  # 确保是一个普通文件  
        # 获取文件名（不包括路径和扩展名）  
        filename=$(basename "$file" ."$FILE_EXTENSION")  
  
        # 获取当前时间作为更新时间  
        update_time=$(date +"%Y-%m-%d %H:%M:%S")  
  
        # 根据文件类型构建不同的文件描述头  
        if [[ "$FILE_EXTENSION" == "c" || "$FILE_EXTENSION" == "h" ]]; then  
            header=$(printf "$HEADER_TEMPLATE" "$filename" "$AUTHOR" "$update_time" "$SOFTWARE_VERSION")  
        elif [[ "$FILE_EXTENSION" == "Makefile" || "$FILE_EXTENSION" == "mk" ]]; then  
            header="# 文件名: $filename  
# 作者: $AUTHOR  
# 更新时间: $update_time  
# 软件版本号: $SOFTWARE_VERSION  
"  
        elif [[ "$FILE_EXTENSION" == "sh" ]]; then  
            header="#!/bin/bash  
# 文件名: $filename  
# 作者: $AUTHOR  
# 更新时间: $update_time  
# 软件版本号: $SOFTWARE_VERSION  
"  
        elif [[ "$FILE_EXTENSION" == "py" ]]; then  
            header="""\"\"\"  
文件名: $filename  
作者: $AUTHOR  
更新时间: $update_time  
软件版本号: $SOFTWARE_VERSION  
\"\"\"  
"""  
        else  
            echo "不支持的文件扩展名: $FILE_EXTENSION"  
            exit 1  
        fi  
  
        # 将文件描述头添加到文件开头  
        {  
            echo "$header"  
            cat "$file"  
        } > "${file}.tmp" && mv "${file}.tmp" "$file"  
  
        echo "已为文件 $filename.$FILE_EXTENSION 添加文件描述头"  
    fi  
done  
  
echo "处理完成"